﻿using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using JTC.Genetics.Molecules.Proteins;
using JTC.Genetics.Molecules.Proteins.Filaments;
using JTC.Genetics._Interfaces;

namespace JTC.Genetics.UnitTests
{
    [TestClass]
    public class ICytoskeleton_Tests
    {
        Cytoskeleton _instance;

        [TestInitialize]
        public void SetUp()
        {
            _instance = new Cytoskeleton();
        }

        [TestMethod]
        public void is_ICytoskeleton()
        {
            Assert.IsInstanceOfType(_instance, typeof(ICytoskeleton));
        }

        [TestMethod]
        public void has_a_Microtubules()
        {
            Assert.IsNotNull(_instance.Microtubules);
            Assert.IsInstanceOfType(_instance.Microtubules, typeof(IProteinFilament<Tublin>));
        }

        [TestMethod]
        public void has_a_Actin()
        {
            Assert.IsNotNull(_instance.ActinFilaments);
            Assert.IsInstanceOfType(_instance.ActinFilaments, typeof(IProteinFilament<Actin>));
        }

        [TestMethod]
        public void has_a_IntermediateFibres()
        {
            Assert.IsNotNull(_instance.IntermediateFibres);
            Assert.IsInstanceOfType(_instance.IntermediateFibres, typeof(IProteinFilament<IntermediateFilament>));
        }

    }
}
